示例#1
0
int main()
{
        struct fileheader *x;
        char board[80], file[80], target[80];
        init_all();
        strsncpy(board, getparm("board"), 30);
        strsncpy(file, getparm("file"), 30);
        strsncpy(target, getparm("target"), 30);
        if(!loginok)
                http_fatal("匆匆过客不能进行本项操作");
        if(!has_read_perm(&currentuser, board))
                http_fatal("错误的讨论区");
        x=get_file_ent(board, file);
        if(x==0)
                http_fatal("错误的文件名");
        printf("<center>%s -- 转寄/推荐给好友 [使用者: %s]<hr color=green>\n", BBSNAME, currentuser.userid);
        if(target[0]) {
                if(!strstr(target, "@")) {
                        if(!getuser(target))
                                http_fatal("错误的使用者帐号");
                        strcpy(target, getuser(target)->userid);
                }
                return do_fwd(x, board, target);
        }
        printf("<table><tr><td>\n");
        printf("文章标题: %s<br>\n", nohtml(x->title));
        printf("文章作者: %s<br>\n", x->owner);
        printf("原讨论区: %s<br>\n", board);
        printf("<form action=bbsfwd method=post>\n");
        printf("<input type=hidden name=board value=%s>", board);
        printf("<input type=hidden name=file value=%s>", file);
        printf("把文章转寄给 <input name=target size=30 maxlength=30 value=%s> (请输入对方的id或email地址). <br>\n",
               currentuser.email);
        printf("<input type=submit value=确定转寄></form>");
}
示例#2
0
int main(int argc, char** argv)
{
	char buf[255];
	int reply;
	int proto;
	
	int client=6;
	int server=7;
	

        do_fwd(client, server, buf, ESD_KEY_LEN);
        do_fwd(client, server, buf, sizeof(int));

	do_fwd(server, client, &reply, sizeof(reply));
	//reply=1;
	//write(client, &reply, sizeof(reply));

	/* Server will close connection anyway */
	if (reply != 1)
		exit(1);

	while (read(client, &proto, sizeof(proto)) == sizeof(proto))
	{
		write(server, &proto, sizeof(proto));

#ifdef DEBUG
		fprintf(stderr, "proto = %d\n", proto);
#endif

	 	switch(proto)
		{
			case ESD_PROTO_SERVER_INFO:
				do_fwd(client, server, buf, sizeof(int));
				do_fwd(server, client, buf, sizeof(int)+sizeof(esd_format_t)+sizeof(int));
				break;
			case ESD_PROTO_LATENCY:
				do_fwd(server, client, buf, sizeof(int));
				break;
			case ESD_PROTO_STREAM_PLAY:
				do_child(client, server, (argc > 1 && argv[1][0] == 'e'));
				exit(0);
				break;
			default:
				close(client);
				close(server);
				exit(1);
		}
	}

	exit(1);
}
示例#3
0
/* Event handler in Podzilla compiling style */
static int tuxchess_handle_event(GR_EVENT *event)
{
	int ret = 0;
	switch (event->type)
	{
	case GR_EVENT_TYPE_KEY_DOWN:
		switch (event->keystroke.ch)
		{
		case'm':
			do_menu();
			ret |= KEY_CLICK;
			break;

		case'w':
			if (end == 0) {
				do_rev();
				ret |= KEY_CLICK;
			}
			break;

		case'f':
			if (end == 0) {
				do_fwd();
				ret |= KEY_CLICK;
			}
			break;

		case'\r':
			if (end == 0) {
				do_action();
			}
			else if (end == 1) {
				draw_end(end_type);
			}
			else {
				new_game();
			}
			ret |= KEY_CLICK;
			break;

		case'l':
			if (end == 0) {
				do_left();
				ret |= KEY_CLICK;
			}
			break;

		case'r':
			if (end == 0) {
				do_right();
				ret |= KEY_CLICK;
			}
			break;

		default:
			ret |= KEY_UNUSED;
			break;
		}
		break;
	default:
		ret |= EVENT_UNUSED;
		break;
	}

	return ret;
}