Няшная / Говнокод #23209 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <errno.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
	int sock = socket(AF_LOCAL, SOCK_STREAM, 0);
	if(sock == -1)
	   printf("Error\n");
	
	int enable=1;
	int ret = setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (const char*)&enable, sizeof(enable));
	if(ret==-1)
	    perror("Error");
    else
        printf("Sucess\n");
	
	int optval;
	int optlen;
	ret = getsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &optval, &optlen);
	if(ret==0)
	{
       if(optval != 0)
           printf("SO_REUSEADDR enabled\n");
       else
           printf("SO_REUSEADDR disabled\n");
    }
	else
	{
		if(errno==EBADF)
            printf("The argument sockfd is not a valid file descriptor.\n");
		else if(errno==EFAULT)
		    printf("The address pointed to by optval is not in a valid part of.the process address space.  For getsockopt(), this error may also be returned if optlen is not in a valid part of the process address space.\n");
		else if(errno==EINVAL)
		    printf("optlen invalid in setsockopt().  In some cases this error.can also occur for an invalid value in optval (e.g., for the IP_ADD_MEMBERSHIP option described in ip(7)).\n");
		else if(errno==ENOPROTOOPT)
		    printf("The option is unknown at the level indicated.\n");
		else if(errno==ENOTSOCK)
		    printf("The file descriptor sockfd does not refer to a socket.\n");
	}
	
	char *name;
	name="ccmni0";
	if( (setsockopt(sock, SOL_SOCKET, SO_BINDTODEVICE, name, 6)) < 0)
	   printf("SO_BINDTODEVICE error\n");
	char *arr[7];
	int ss = 7;
	ret = getsockopt(sock, SOL_SOCKET, SO_BINDTODEVICE, &arr, &ss);
	if(ret==0)
	{
		printf("SO_BINDTODEVICE: %s\n", arr);
	}
	else
	{
		if(errno==EBADF)
            printf("The argument sockfd is not a valid file descriptor.\n");
		else if(errno==EFAULT)
		    printf("The address pointed to by optval is not in a valid part of.the process address space.  For getsockopt(), this error may also be returned if optlen is not in a valid part of the process address space.\n");
		else if(errno==EINVAL)
		    printf("optlen invalid in setsockopt().  In some cases this error.can also occur for an invalid value in optval (e.g., for the IP_ADD_MEMBERSHIP option described in ip(7)).\n");
		else if(errno==ENOPROTOOPT)
		    printf("The option is unknown at the level indicated.\n");
		else if(errno==ENOTSOCK)
		    printf("The file descriptor sockfd does not refer to a socket.\n");
	}
}

Посру малёха!

Запостил: botC botC, (Updated )

Комментарии (0) RSS

Добавить комментарий

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8