thermferm/server.c

changeset 268
dda91dfa4aa8
parent 266
07819a7ad3c1
child 269
dc88583a068d
equal deleted inserted replaced
267:a84792cab21c 268:dda91dfa4aa8
74 syslog(LOG_NOTICE, "send: \"%s\"", out); 74 syslog(LOG_NOTICE, "send: \"%s\"", out);
75 fprintf(stdout, "send: \"%s\"\n", out); 75 fprintf(stdout, "send: \"%s\"\n", out);
76 } 76 }
77 77
78 if (send(s, out, strlen(out), 0) != strlen(out)) { 78 if (send(s, out, strlen(out), 0) != strlen(out)) {
79 syslog(LOG_WARNING, "srv_send failed"); 79 syslog(LOG_NOTICE, "srv_send failed");
80 return -1; 80 return -1;
81 } 81 }
82 82
83 if (send(s, (char *)"\r\n", 2, 0) != 2) { 83 if (send(s, (char *)"\r\n", 2, 0) != 2) {
84 syslog(LOG_WARNING, "srv_send failed"); 84 syslog(LOG_NOTICE, "srv_send failed");
85 return -1; 85 return -1;
86 } 86 }
87 87
88 return 0; 88 return 0;
89 } 89 }
348 while (1) { 348 while (1) {
349 memset((char *)&ibuf, 0, SS_BUFSIZE); 349 memset((char *)&ibuf, 0, SS_BUFSIZE);
350 fromlen = sizeof(peeraddr_in); 350 fromlen = sizeof(peeraddr_in);
351 rlen = recvfrom(s, ibuf, sizeof(ibuf) -1, 0, (struct sockaddr *)&peeraddr_in, &fromlen); 351 rlen = recvfrom(s, ibuf, sizeof(ibuf) -1, 0, (struct sockaddr *)&peeraddr_in, &fromlen);
352 if (rlen == -1) { 352 if (rlen == -1) {
353 syslog(LOG_WARNING, "recvfrom(): %s", strerror(errno)); 353 syslog(LOG_NOTICE, "recvfrom(): %s", strerror(errno));
354 srv_send((char *)"518 recfrom(): %s", strerror(errno)); 354 srv_send((char *)"518 recfrom(): %s", strerror(errno));
355 return 1; 355 return 1;
356 } 356 }
357 for (i = 0; i < strlen(ibuf); i++) { 357 for (i = 0; i < strlen(ibuf); i++) {
358 if (ibuf[i] == '\n') 358 if (ibuf[i] == '\n')
490 while (1) { 490 while (1) {
491 memset((char *)&ibuf, 0, SS_BUFSIZE); 491 memset((char *)&ibuf, 0, SS_BUFSIZE);
492 fromlen = sizeof(peeraddr_in); 492 fromlen = sizeof(peeraddr_in);
493 rlen = recvfrom(s, ibuf, sizeof(ibuf) -1, 0, (struct sockaddr *)&peeraddr_in, &fromlen); 493 rlen = recvfrom(s, ibuf, sizeof(ibuf) -1, 0, (struct sockaddr *)&peeraddr_in, &fromlen);
494 if (rlen == -1) { 494 if (rlen == -1) {
495 syslog(LOG_WARNING, "recvfrom(): %s", strerror(errno)); 495 syslog(LOG_NOTICE, "recvfrom(): %s", strerror(errno));
496 srv_send((char *)"518 recfrom(): %s", strerror(errno)); 496 srv_send((char *)"518 recfrom(): %s", strerror(errno));
497 return 1; 497 return 1;
498 } 498 }
499 for (i = 0; i < strlen(ibuf); i++) { 499 for (i = 0; i < strlen(ibuf); i++) {
500 if (ibuf[i] == '\n') 500 if (ibuf[i] == '\n')
794 while (1) { 794 while (1) {
795 memset((char *)&ibuf, 0, SS_BUFSIZE); 795 memset((char *)&ibuf, 0, SS_BUFSIZE);
796 fromlen = sizeof(peeraddr_in); 796 fromlen = sizeof(peeraddr_in);
797 rlen = recvfrom(s, ibuf, sizeof(ibuf) -1, 0, (struct sockaddr *)&peeraddr_in, &fromlen); 797 rlen = recvfrom(s, ibuf, sizeof(ibuf) -1, 0, (struct sockaddr *)&peeraddr_in, &fromlen);
798 if (rlen == -1) { 798 if (rlen == -1) {
799 syslog(LOG_WARNING, "recvfrom(): %s", strerror(errno)); 799 syslog(LOG_NOTICE, "recvfrom(): %s", strerror(errno));
800 srv_send((char *)"518 recfrom(): %s", strerror(errno)); 800 srv_send((char *)"518 recfrom(): %s", strerror(errno));
801 return 1; 801 return 1;
802 } 802 }
803 for (i = 0; i < strlen(ibuf); i++) { 803 for (i = 0; i < strlen(ibuf); i++) {
804 if (ibuf[i] == '\n') 804 if (ibuf[i] == '\n')
872 while (1) { 872 while (1) {
873 memset((char *)&ibuf, 0, SS_BUFSIZE); 873 memset((char *)&ibuf, 0, SS_BUFSIZE);
874 fromlen = sizeof(peeraddr_in); 874 fromlen = sizeof(peeraddr_in);
875 rlen = recvfrom(s, ibuf, sizeof(ibuf) -1, 0, (struct sockaddr *)&peeraddr_in, &fromlen); 875 rlen = recvfrom(s, ibuf, sizeof(ibuf) -1, 0, (struct sockaddr *)&peeraddr_in, &fromlen);
876 if (rlen == -1) { 876 if (rlen == -1) {
877 syslog(LOG_WARNING, "recvfrom(): %s", strerror(errno)); 877 syslog(LOG_NOTICE, "recvfrom(): %s", strerror(errno));
878 srv_send((char *)"518 recfrom(): %s", strerror(errno)); 878 srv_send((char *)"518 recfrom(): %s", strerror(errno));
879 return 1; 879 return 1;
880 } else { 880 } else {
881 for (i = 0; i < strlen(ibuf); i++) { 881 for (i = 0; i < strlen(ibuf); i++) {
882 if (ibuf[i] == '\n') 882 if (ibuf[i] == '\n')
1109 while (1) { 1109 while (1) {
1110 memset((char *)&ibuf, 0, SS_BUFSIZE); 1110 memset((char *)&ibuf, 0, SS_BUFSIZE);
1111 fromlen = sizeof(peeraddr_in); 1111 fromlen = sizeof(peeraddr_in);
1112 rlen = recvfrom(s, ibuf, sizeof(ibuf) -1, 0, (struct sockaddr *)&peeraddr_in, &fromlen); 1112 rlen = recvfrom(s, ibuf, sizeof(ibuf) -1, 0, (struct sockaddr *)&peeraddr_in, &fromlen);
1113 if (rlen == -1) { 1113 if (rlen == -1) {
1114 syslog(LOG_WARNING, "recvfrom(): %s", strerror(errno)); 1114 syslog(LOG_NOTICE, "recvfrom(): %s", strerror(errno));
1115 srv_send((char *)"518 recfrom(): %s", strerror(errno)); 1115 srv_send((char *)"518 recfrom(): %s", strerror(errno));
1116 return 1; 1116 return 1;
1117 } 1117 }
1118 for (i = 0; i < strlen(ibuf); i++) { 1118 for (i = 0; i < strlen(ibuf); i++) {
1119 if (ibuf[i] == '\n') 1119 if (ibuf[i] == '\n')
1459 while (1) { 1459 while (1) {
1460 memset((char *)&ibuf, 0, SS_BUFSIZE); 1460 memset((char *)&ibuf, 0, SS_BUFSIZE);
1461 fromlen = sizeof(peeraddr_in); 1461 fromlen = sizeof(peeraddr_in);
1462 rlen = recvfrom(s, ibuf, sizeof(ibuf) -1, 0, (struct sockaddr *)&peeraddr_in, &fromlen); 1462 rlen = recvfrom(s, ibuf, sizeof(ibuf) -1, 0, (struct sockaddr *)&peeraddr_in, &fromlen);
1463 if (rlen == -1) { 1463 if (rlen == -1) {
1464 syslog(LOG_WARNING, "recvfrom(): %s", strerror(errno)); 1464 syslog(LOG_NOTICE, "recvfrom(): %s", strerror(errno));
1465 srv_send((char *)"518 recfrom(): %s", strerror(errno)); 1465 srv_send((char *)"518 recfrom(): %s", strerror(errno));
1466 return 1; 1466 return 1;
1467 } 1467 }
1468 for (i = 0; i < strlen(ibuf); i++) { 1468 for (i = 0; i < strlen(ibuf); i++) {
1469 if (ibuf[i] == '\n') 1469 if (ibuf[i] == '\n')
1708 1708
1709 memset((char *)&buf, 0, SS_BUFSIZE); 1709 memset((char *)&buf, 0, SS_BUFSIZE);
1710 fromlen = sizeof(peeraddr_in); 1710 fromlen = sizeof(peeraddr_in);
1711 rlen = recvfrom(s, buf, sizeof(buf) -1, 0, (struct sockaddr *)&peeraddr_in, &fromlen); 1711 rlen = recvfrom(s, buf, sizeof(buf) -1, 0, (struct sockaddr *)&peeraddr_in, &fromlen);
1712 if (rlen == -1) { 1712 if (rlen == -1) {
1713 syslog(LOG_WARNING, "recvfrom(): %s", strerror(errno)); 1713 syslog(LOG_NOTICE, "recvfrom(): %s", strerror(errno));
1714 } else { 1714 } else {
1715 for (i = 0; i < strlen(buf); i++) { 1715 for (i = 0; i < strlen(buf); i++) {
1716 if (buf[i] == '\n') 1716 if (buf[i] == '\n')
1717 buf[i] = '\0'; 1717 buf[i] = '\0';
1718 if (buf[i] == '\r') 1718 if (buf[i] == '\r')
1817 myaddr_in.sin_addr.s_addr = INADDR_ANY; 1817 myaddr_in.sin_addr.s_addr = INADDR_ANY;
1818 myaddr_in.sin_port = htons(Config.my_port); 1818 myaddr_in.sin_port = htons(Config.my_port);
1819 1819
1820 ls = socket(AF_INET, SOCK_STREAM, 0); 1820 ls = socket(AF_INET, SOCK_STREAM, 0);
1821 if (ls == -1) { 1821 if (ls == -1) {
1822 syslog(LOG_WARNING, "Can't create listen socket: %s", strerror(errno)); 1822 syslog(LOG_NOTICE, "Can't create listen socket: %s", strerror(errno));
1823 fprintf(stderr, "Can't create listen socket: %s\n", strerror(errno)); 1823 fprintf(stderr, "Can't create listen socket: %s\n", strerror(errno));
1824 return 0; 1824 return 0;
1825 } 1825 }
1826 1826
1827 if (setsockopt(ls, SOL_SOCKET, SO_KEEPALIVE, &optval, sizeof(optval)) == -1) { 1827 if (setsockopt(ls, SOL_SOCKET, SO_KEEPALIVE, &optval, sizeof(optval)) == -1) {
1828 syslog(LOG_WARNING, "Can't setsockopt SO_KEEPALIVE socket: %s", strerror(errno)); 1828 syslog(LOG_NOTICE, "Can't setsockopt SO_KEEPALIVE socket: %s", strerror(errno));
1829 close(ls); 1829 close(ls);
1830 return 0; 1830 return 0;
1831 } 1831 }
1832 1832
1833 if (setsockopt(ls, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(optval)) == -1) { 1833 if (setsockopt(ls, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(optval)) == -1) {
1834 syslog(LOG_WARNING, "Can't setsockopt SO_REUSEADDR socket: %s", strerror(errno)); 1834 syslog(LOG_NOTICE, "Can't setsockopt SO_REUSEADDR socket: %s", strerror(errno));
1835 close(ls); 1835 close(ls);
1836 return 0; 1836 return 0;
1837 } 1837 }
1838 1838
1839 if (bind(ls, (struct sockaddr *)&myaddr_in, sizeof(struct sockaddr_in)) == -1) { 1839 if (bind(ls, (struct sockaddr *)&myaddr_in, sizeof(struct sockaddr_in)) == -1) {
1840 syslog(LOG_WARNING, "Can't bind to listen socket: %s", strerror(errno)); 1840 syslog(LOG_NOTICE, "Can't bind to listen socket: %s", strerror(errno));
1841 close(ls); 1841 close(ls);
1842 return 0; 1842 return 0;
1843 } 1843 }
1844 1844
1845 if (listen(ls, 5) == -1) { 1845 if (listen(ls, 5) == -1) {
1846 syslog(LOG_WARNING, "Can't listen on listen socket: %s", strerror(errno)); 1846 syslog(LOG_NOTICE, "Can't listen on listen socket: %s", strerror(errno));
1847 close(ls); 1847 close(ls);
1848 return 0; 1848 return 0;
1849 } 1849 }
1850 1850
1851 syslog(LOG_NOTICE, "listen socket created %d", ls); 1851 syslog(LOG_NOTICE, "listen socket created %d", ls);
1863 * the connecting peer, and a new socket 1863 * the connecting peer, and a new socket
1864 * descriptor, s, for that connection. 1864 * descriptor, s, for that connection.
1865 */ 1865 */
1866 s = accept(ls, (struct sockaddr *)&peeraddr_in, &addrlen); 1866 s = accept(ls, (struct sockaddr *)&peeraddr_in, &addrlen);
1867 if (s == -1) { 1867 if (s == -1) {
1868 syslog(LOG_WARNING, "my_server_loop accept failed %s", strerror(errno)); 1868 syslog(LOG_NOTICE, "my_server_loop accept failed %s", strerror(errno));
1869 if (debug) 1869 if (debug)
1870 fprintf(stdout, "my_server_loop accept failed %s\n", strerror(errno)); 1870 fprintf(stdout, "my_server_loop accept failed %s\n", strerror(errno));
1871 return 0; 1871 return 0;
1872 } 1872 }
1873 1873

mercurial