Exemplo n.º 1
0
static lisp_cfg_t *
copy_lisp_cfg (apr_pool_t * pool, lisp_cfg_t * cfg)
{
  lisp_cfg_t * copy = (make_lisp_cfg (pool));
  (SERVER_ADDRESS (copy)) = (SERVER_ADDRESS (cfg));
  (SERVER_PORT (copy)) = (SERVER_PORT (cfg));
  (SERVER_ID (copy)) = (SERVER_ID (cfg));
  (SERVER_SPECIFIED_P (copy)) = (SERVER_SPECIFIED_P (cfg));
  return (copy);
}
Exemplo n.º 2
0
void check_cfg_for_reuse(lisp_cfg_t *local_cfg, lisp_cfg_t *cfg)
{
  if (strcmp((SERVER_ADDRESS (local_cfg)), (SERVER_ADDRESS (cfg))) ||
      (SERVER_PORT (local_cfg)) != (SERVER_PORT (cfg)) ||
      strcmp((SERVER_ID (local_cfg)), (SERVER_ID (cfg))))
    {
      (SERVER_ADDRESS (local_cfg)) = (SERVER_ADDRESS (cfg));
      (SERVER_PORT (local_cfg)) = (SERVER_PORT (cfg));
      (SERVER_ID (local_cfg)) = (SERVER_ID (cfg));
      (SERVER_SPECIFIED_P (local_cfg)) = (SERVER_SPECIFIED_P (cfg));
      (SERVER_SOCKET_SAFE_P (local_cfg)) = 0;
    }
}
Exemplo n.º 3
0
static lisp_cfg_t *
default_lisp_cfg (apr_pool_t * pool)
{
  lisp_cfg_t * cfg = (make_lisp_cfg (pool));
  (SERVER_ADDRESS (cfg)) = (apr_pstrdup (pool, "127.0.0.1"));
  (SERVER_PORT (cfg)) = 3000;
  (SERVER_ID (cfg)) = (apr_pstrdup (pool, "apache"));
  (SERVER_SPECIFIED_P (cfg)) = 0;
  (SERVER_SOCKET (cfg)) = 0;
  (SERVER_SOCKET_SAFE_P (cfg)) = 0;
  return (cfg);
}
Exemplo n.º 4
0
static int sftpsv(int port,PCStr(host),PVStr(lhost)){
	int acsk,svsk,lport,lports;
	VSAddr vsa;

	lport = SERVER_PORT() + 1;
	lports = (lport<<16) | (lport+32);
	strcpy(lhost,"127.0.0.1");
	VSA_atosa(&vsa,0,lhost);
	acsk = newSocket("sftp","");
	if( BindSocket(acsk,&vsa,lports) != 0 ){
		BindSocket(acsk,&vsa,0);
	}
	lport = sockPort(acsk);
	listen(acsk,1);
	svsk = connect_to_sv(MainConn(),"sftp",host,port);
	sfsv_acsock = acsk;
	sfsv_svsock = svsk;
	SftpTid = thread_fork(0x80000,0,"sftpsv1",(IFUNCP)sftpsv1,acsk,svsk);
	sv1log("-Esf %d/%d %d/%d %X\n",lport,acsk,sockPort(svsk),svsk,SftpTid);
	return lport;
}
Exemplo n.º 5
0
int main(int argc, char const **argv) {

    int sockfd; // Дескриптор сокета
    const int val = 1; // Для установки параметров сокета
    char buffer[BUF_SIZE()]; // Буффер сообщения
    struct sockaddr_in servaddr, clientaddr; // Параметры сервера и клиента

    sockfd = Socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); // Сокет инициализируется как простой UDP-сокет

    memset(&servaddr, 0, sizeof(servaddr));

/* Заполнение буффера сообщения */
    strcpy(buffer, "HEY ITS MY BROADCAST");

/* Установка параметров сервера и клиента */
    servaddr.sin_family = AF_INET;
    servaddr.sin_addr.s_addr = INADDR_ANY;
    servaddr.sin_port = htons(SERVER_PORT());

    clientaddr.sin_family = AF_INET;
    clientaddr.sin_addr.s_addr = inet_addr("192.168.1.255");
    clientaddr.sin_port = htons(CLIENT_PORT());

/* Установка параметров сокета */
    Setsockopt(sockfd, SOL_SOCKET, SO_BROADCAST, &val, sizeof(int));

/* Привязка параметров сервера к сокету */
    Bind(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr));

/* Отправка broadcast - сообщения */
    Sendto(sockfd, buffer, BUF_SIZE(), 0, (struct sockaddr *)&clientaddr, sizeof(clientaddr));
    
/* Закрываем сокет и освобождаем память */
    shutdown(sockfd, SHUT_RDWR);
    close(sockfd);

    return 0;

}
Exemplo n.º 6
0
static const char *
lisp_set_server (cmd_parms * cmd,
                 void * cfg_void,
                 const char * server_address,
                 const char * server_port,
                 const char * server_id)
{
  lisp_cfg_t * cfg = cfg_void;
  long port;
  {
    char * end;
    port = (strtol (server_port, (&end), 0));
    if (((*end) != '\0') || (port < 0))
      return ("malformed server port");
  }
  (SERVER_ADDRESS (cfg)) = (apr_pstrdup ((cmd->pool), server_address));
  (SERVER_PORT (cfg)) = port;
  (SERVER_ID (cfg)) = (apr_pstrdup ((cmd->pool), server_id));
  (SERVER_SPECIFIED_P (cfg)) = 1;
  close_lisp_socket (cfg);
  return (0);
}
Exemplo n.º 7
0
int DELEGATE_subfunc(DGC*Conn,int ac,const char *av[],PCStr(func),int Fopt,int type)
{	int fi;
	const char *fname;
	const char *sp;
	mainFUNCP ifunc;
	int ctype;
	const char *nav[64]; /**/
	CStr(nab,1024);
	const char **avx;
	int acx;
	int impok = 0;

	for( fi = 0; fname = subfuncs[fi].f_name; fi++ ){
		if( !strcaseeq(func,fname) )
		if( !strncaseeq(func,"dg",2) || !strcaseeq(func+2,fname) )
			continue;

		if( subfuncs[fi].f_stats & FC_DISABLE ){
			if( FimpByOwner(func) ){
				impok = 1;
			}else{
			fprintf(stderr,"Forbidden: %s\n",fname);
			Finish(-1);
			}
		}

		if( geteuid() == 0 && getuid() != 0 )
		if( (subfuncs[fi].f_stats & FC_ASROOT) == 0 )
		if( subfuncs[fi].f_func != (mainFunc*)implant_main )
		{
			/*
			fprintf(stderr,"Not allowed in root: %s\n",fname);
			*/
			seteuid(getuid());
		}

		ctype = subfuncs[fi].f_type;
		if( ctype == MS ){
			setIsFunc(Conn,1);
			LOG_type |= L_ISFUNC;
		}

		if( ctype == MV ){
			if( type != MV )
				return 1;
		}else
		if( ctype == MN ){
			if( type != MN )
				return 1;
			if( subfuncs[fi].f_proto[0] )
			DELEGATE_ScanGlobal(Conn,subfuncs[fi].f_proto);
		}

		ifunc = (mainFUNCP)subfuncs[fi].f_func;

		if( subfuncs[fi].f_withLog ){
			/* special case of "expire" */
			ac = replace_log(ac,&av,64,nav,AVStr(nab));
		}else
		if( ctype == MV ){
			/* already did arg_scan() */
			/* don't need config for any client */
		}else{
			if( ifunc == (mainFUNCP)argdec_main ){
				/* don't decrypt +=enc:... arg. */
			}else
			ac = DELEGATE_scan_args(ac,av);
			DELEGATE_config(Conn,-1);
		}

		if( subfuncs[fi].f_withAdmin )
		if( subfuncs[fi].f_proto[0] )
			checkADMIN(Conn,subfuncs[fi].f_proto);

		if( Fopt ){
			int ai;

			acx = ac - Fopt;
			avx = &av[Fopt];
			for( ai = 0; ai < acx; ai++ ){
				if( strcmp(avx[ai],"--") == 0 ){
					acx = ai;
					break;
				}
			}
		}else{
			acx = ac;
			avx = av;
		}

		if( getenv("DELEGATE_DEBUG") ){
			int ai;
			for(ai=0;ai<acx;ai++)
				fprintf(stderr,"##[%d] %s\n",ai,avx[ai]);
		}

		DELEGATE_ver(); /* set MyVer for debugging */
		(*ifunc)(acx,avx,Conn,ServSock(),SERVER_PORT());
		Finish(0);
	}
	if( Fopt ){
		printf("DeleGate: unknown function -F\"%s\"\r\n",func);
		help_main(ac,av);
		Finish(-1);
	}
	return 0;
}