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:
Kim Woelders
2018-07-02 12:31:20 +02:00
parent f0697e83f3
commit 4988368662
+27 -16
View File
@@ -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,
};