summaryrefslogtreecommitdiffstats
path: root/loader/kon2/tools/logto.c
blob: d3abf4875d467a34dd73245b4745da21cf4fd724 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#define	LOGTO_C
#include	<stdio.h>
#include	<limits.h>
#include	<sys/stat.h>
#include	<sys/socket.h>

#include	<interface.h>

void	main(argc, argv)
int	argc;
char	*argv[];
{
	int	s, len;
	char	name[_POSIX_PATH_MAX], path[_POSIX_PATH_MAX];

	if ((s = SocketClientOpen()) == -1) {
		fprintf(stderr, "%s> connect fail.\n", argv[0]);
		exit(EOF);
	}
	if (argc < 2) {
		len = 0;
	} else {
		getcwd(path, _POSIX_PATH_MAX);
		sprintf(name, "%s/%s", path, argv[1]);
		len = strlen(name) + 1;
	}
	SocketSendStr(s, STR_LOGTO);
	if (SocketRecCtrl(s) != CHR_ACK) {
		fprintf(stderr, "%s> no answer.\n", argv[0]);
		exit(EOF);
	}
	if (SocketSendData((void *)&len, sizeof(int), s) == EOF) {
		fprintf(stderr, "%s> data length send error.\n", argv[0]);
		exit(EOF);
	}
	if (SocketSendData(name, len, s) == EOF) {
		fprintf(stderr, "%s> data send error.\n", argv[0]);
		exit(EOF);
	}
}