Cosmetics of various sorts
Also in srv_connect() (renamed from ttynvt_connect()), close newly crated socket in a couple of error paths.
This commit is contained in:
@@ -33,7 +33,7 @@
|
||||
static struct ttynvt_param {
|
||||
unsigned int major;
|
||||
unsigned int minor;
|
||||
char *dev_name;
|
||||
const char *dev_name;
|
||||
char *host;
|
||||
unsigned int port;
|
||||
unsigned int debug;
|
||||
@@ -216,49 +216,56 @@ static void *ttynvt_read_net(void *arg)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int ttynvt_connect(const char *host, unsigned int port)
|
||||
static int srv_connect(const char *host, unsigned int port)
|
||||
{
|
||||
|
||||
struct sockaddr_in serveraddr;
|
||||
struct hostent *server;
|
||||
int sockfd, err;
|
||||
|
||||
int sockfd = socket(AF_INET, SOCK_STREAM, 0);
|
||||
|
||||
sockfd = socket(AF_INET, SOCK_STREAM, 0);
|
||||
if (sockfd < 0)
|
||||
{
|
||||
ttynvt_log(LOG_ERR, "Socket open failed: %s\n", strerror(errno));
|
||||
return sockfd;
|
||||
}
|
||||
|
||||
server = gethostbyname(host);
|
||||
if (server == NULL)
|
||||
{
|
||||
ttynvt_log(LOG_ERR, "Cannot resolve host name: %s\n", strerror(errno));
|
||||
close(sockfd);
|
||||
return -1;
|
||||
}
|
||||
|
||||
bzero((char *)&serveraddr, sizeof(serveraddr));
|
||||
serveraddr.sin_family = AF_INET;
|
||||
bcopy((char *)server->h_addr, (char *)&serveraddr.sin_addr.s_addr,
|
||||
server->h_length);
|
||||
serveraddr.sin_port = htons(port);
|
||||
|
||||
if (connect
|
||||
(sockfd, (const struct sockaddr *)&serveraddr, sizeof(serveraddr)) < 0)
|
||||
err = connect(sockfd, (struct sockaddr *)&serveraddr, sizeof(serveraddr));
|
||||
if (err < 0)
|
||||
{
|
||||
ttynvt_log(LOG_ERR, "Failed to connect to: %s:%u:%s\n",
|
||||
host, port, strerror(errno));
|
||||
close(sockfd);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return sockfd;
|
||||
}
|
||||
|
||||
int srv_write(void *cctx, const void *buf, int len)
|
||||
static int srv_write(void *cctx, const void *buf, int len)
|
||||
{
|
||||
ttynvt_t *tty = cctx;
|
||||
int res;
|
||||
|
||||
return write(tty->fds[0].fd, buf, len);
|
||||
res = write(tty->fds[0].fd, buf, len);
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
int srv_read(void *cctx, int timeout)
|
||||
static int srv_read(void *cctx, int timeout)
|
||||
{
|
||||
ttynvt_t *tty = cctx;
|
||||
int res;
|
||||
@@ -287,7 +294,7 @@ int srv_read(void *cctx, int timeout)
|
||||
return 1;
|
||||
}
|
||||
|
||||
void modem_status_cb(void *cctx, int status)
|
||||
static void modem_status_cb(void *cctx, int status)
|
||||
{
|
||||
ttynvt_t *tty = cctx;
|
||||
|
||||
@@ -327,7 +334,7 @@ static void ttynvt_open(fuse_req_t req, struct fuse_file_info *info)
|
||||
return;
|
||||
}
|
||||
|
||||
sockfd = ttynvt_connect(ttynvt_param.host, ttynvt_param.port);
|
||||
sockfd = srv_connect(ttynvt_param.host, ttynvt_param.port);
|
||||
if (sockfd < 0)
|
||||
{
|
||||
free(tty->tn);
|
||||
@@ -760,8 +767,10 @@ ttynvt_poll(fuse_req_t req, struct fuse_file_info *info,
|
||||
|
||||
if (ttynvt_write_avail(tty) > 0)
|
||||
revents |= POLLOUT;
|
||||
|
||||
if (ttynvt_read_avail(tty) > 0)
|
||||
revents |= POLLIN;
|
||||
|
||||
if (tty->error)
|
||||
{
|
||||
if (tty->epipe == 0)
|
||||
@@ -830,7 +839,7 @@ int main(int argc, char *argv[])
|
||||
{
|
||||
struct fuse_args args = FUSE_ARGS_INIT(argc, argv);
|
||||
|
||||
char dev_name[128] = { 0 };
|
||||
char dev_name[128];
|
||||
const char *dev_info_argv[] = { dev_name };
|
||||
|
||||
openlog("ttynvt", LOG_PID, LOG_DAEMON);
|
||||
@@ -841,13 +850,15 @@ int main(int argc, char *argv[])
|
||||
return 1;
|
||||
}
|
||||
|
||||
snprintf(dev_name, sizeof(dev_name), "DEVNAME=%s",
|
||||
ttynvt_param.dev_name ? ttynvt_param.dev_name : "ttyNVT0");
|
||||
if (!ttynvt_param.dev_name)
|
||||
ttynvt_param.dev_name = "ttyNVT0";
|
||||
|
||||
snprintf(dev_name, sizeof(dev_name), "DEVNAME=%s", ttynvt_param.dev_name);
|
||||
|
||||
struct cuse_info ci = {
|
||||
.dev_major = ttynvt_param.major,
|
||||
.dev_minor = ttynvt_param.minor,
|
||||
.dev_info_argc = 1,
|
||||
.dev_info_argc = sizeof(dev_info_argv) / sizeof(char *),
|
||||
.dev_info_argv = dev_info_argv,
|
||||
.flags = CUSE_UNRESTRICTED_IOCTL,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user