fixed
This commit is contained in:
parent
9a7fa213b0
commit
42c2279ec5
26
plainbin.c
26
plainbin.c
@ -20,11 +20,9 @@
|
|||||||
#define MSG4 "No namespace available.\n"
|
#define MSG4 "No namespace available.\n"
|
||||||
|
|
||||||
#ifndef VERSION
|
#ifndef VERSION
|
||||||
#define VERSION "1.1"
|
#define VERSION "1.2"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int iport = 8080;
|
|
||||||
int oport = 8081;
|
|
||||||
size_t max_clients = 15;
|
size_t max_clients = 15;
|
||||||
size_t max_size = 1;
|
size_t max_size = 1;
|
||||||
size_t buf_size = 32000;
|
size_t buf_size = 32000;
|
||||||
@ -50,7 +48,7 @@ enum {
|
|||||||
SEND
|
SEND
|
||||||
};
|
};
|
||||||
|
|
||||||
int new_server(const int port) {
|
int new_server(const int port, const int backlog) {
|
||||||
int listen_fd = socket(AF_INET, SOCK_STREAM, 0);
|
int listen_fd = socket(AF_INET, SOCK_STREAM, 0);
|
||||||
if (listen_fd < 0)
|
if (listen_fd < 0)
|
||||||
return -1;
|
return -1;
|
||||||
@ -75,7 +73,7 @@ int new_server(const int port) {
|
|||||||
if (bind(listen_fd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0)
|
if (bind(listen_fd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0)
|
||||||
goto NS_ERROR;
|
goto NS_ERROR;
|
||||||
|
|
||||||
if (listen(listen_fd, 0) < 0)
|
if (listen(listen_fd, backlog) < 0)
|
||||||
goto NS_ERROR;
|
goto NS_ERROR;
|
||||||
|
|
||||||
return listen_fd;
|
return listen_fd;
|
||||||
@ -355,8 +353,12 @@ int main(int argc, char **argv) {
|
|||||||
signal(SIGTERM, sig_handler);
|
signal(SIGTERM, sig_handler);
|
||||||
signal(SIGCHLD, SIG_IGN);
|
signal(SIGCHLD, SIG_IGN);
|
||||||
|
|
||||||
|
int backlog = 1;
|
||||||
|
int iport = 8080;
|
||||||
|
int oport = 8081;
|
||||||
|
|
||||||
int opt;
|
int opt;
|
||||||
while ((opt = getopt(argc, argv, "i:o:m:d:s:n:b:t:V")) != -1) {
|
while ((opt = getopt(argc, argv, "i:o:m:d:s:n:b:t:l:V")) != -1) {
|
||||||
switch (opt) {
|
switch (opt) {
|
||||||
case 'i':
|
case 'i':
|
||||||
iport = atoi(optarg);
|
iport = atoi(optarg);
|
||||||
@ -395,12 +397,16 @@ int main(int argc, char **argv) {
|
|||||||
motd = optarg;
|
motd = optarg;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'l':
|
||||||
|
backlog = atoi(optarg);
|
||||||
|
break;
|
||||||
|
|
||||||
case 'V':
|
case 'V':
|
||||||
puts("Version: " VERSION "\nWritten under WTFPL License.");
|
puts("Version: " VERSION "\nWritten under WTFPL License.");
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
printf("%s [iomdsnbtV] - Simple file sharing server\n\t-i NUM Input port\tdefault: %d\n\t-o NUM Output port\tdefault: %d\n\t-m NUM Max clients\tdefault: %zu\n\t-d STR Working dir\tdefault: %s\n\t-s NUM Max file size\tdefault: %zuMB\n\t-n NUM Filename length\tdefault: %zu\n\t-b NUM Buffer size\tdefault: %zuB\n\t-t STR Set MOTD\n\t-V Print version and license\n", prog_name, iport, oport, max_clients, dir, max_size, name_len, buf_size);
|
printf("%s [iomdsnbtlV] - Simple file sharing server\n\t-i NUM Input port\tdefault: %d\n\t-o NUM Output port\tdefault: %d\n\t-m NUM Max clients\tdefault: %zu\n\t-d STR Working dir\tdefault: %s\n\t-s NUM Max file size\tdefault: %zuMB\n\t-n NUM Filename length\tdefault: %zu\n\t-b NUM Buffer size\tdefault: %zuB\n\t-t STR Set MOTD\n\t-l listen() backlog\tdefault: %d\n\t-V Print version and license\n", prog_name, iport, oport, max_clients, dir, max_size, name_len, buf_size, backlog);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -410,13 +416,13 @@ int main(int argc, char **argv) {
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
ifd = new_server(iport);
|
ifd = new_server(iport, backlog);
|
||||||
if (ifd == -1) {
|
if (ifd == -1) {
|
||||||
fprintf(stderr, "%s: new_server: input socket: %s\n", prog_name, strerror(errno));
|
fprintf(stderr, "%s: new_server: input socket: %s\n", prog_name, strerror(errno));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
ofd = new_server(oport);
|
ofd = new_server(oport, backlog);
|
||||||
if (ofd == -1) {
|
if (ofd == -1) {
|
||||||
fprintf(stderr, "%s: new_server: output socket: %s\n", prog_name, strerror(errno));
|
fprintf(stderr, "%s: new_server: output socket: %s\n", prog_name, strerror(errno));
|
||||||
return 1;
|
return 1;
|
||||||
@ -427,4 +433,6 @@ int main(int argc, char **argv) {
|
|||||||
|
|
||||||
else
|
else
|
||||||
Proc(ifd, INPUT);
|
Proc(ifd, INPUT);
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user