FTP소스 수정에 대해 질문으 드리겠습니다.(YACC & LEX 에 대한 내용포함)
글쓴이: anaud2 / 작성시간: 금, 2008/10/24 - 4:43오후
안녕하세요
공개용 FTP 소스를 가지고 조금 변형을 시키기 위해 애쓰고 있는 개발 초보자입니다.
일단 logdeamon 5.7을 사용하고 있구요 이파일은 5년 정도 전 모델입니다. 모델을 선정하게 된데는 사유가 있구요
본론으로 들어가면 조금 넋두리가 될지 모르겠는데요 답답해서 ㅠ
소스를 편집하다가 보니 기본 아이디와 비밀번호 를 입력을 받는단계는 괜찮은데 아이디를 한번더 입력을 받아야 해서요
아이디 비번 인증이 원래 방식인데
ex1)
Connected to 192.168.1.7.
220 RHL4 FTP server (Version 4.338 Fri Oct 24 15:47:48 KST 2008) ready.
Name (192.168.1.7:anaud2):
//아이디 입력
/ex2)
331 Password required for anaud2.
Password:
//비번입력
여기서 비밀번호를 한번더 입력을 받아야 하기에
scanf 라던지...getpass등등을 사용해봤지만 입력단계로 있는게 아니라 멈춰있다가 연결이 끊기네요
제가 이해가 안되는 점은 소스의 main문에서는
for(;;) yyparse();
위처럼 되어 있습니다. YACC & LEX를 사용하는거 같은데요 아이디를 입력을 하면 user()라는 함수가 호출이 되고 비번을 입력을 하면 pass()함수가
호출이 되어서 아이디와 비번을 판단을 하더라구요 main이 있는 소스파일에는 user나 pass를 호출하는 부분이 전혀 없습니다.
yycc&lex는 봤는데 일반 c와 같지 않고 복잡하더라구요...
2번째 비밀번호를 받는 부분을 전pass()에서 scanf나 getpass를 추가 시켜봤는데 이해가 되질 않게...입력단계로 있지않고 잠시 멈췄다가
접속이 끊기네요(확인은 다른 컴퓨터에서 ftp를 걸고 있습니다...자체 실행이 되질 않더라구요)
일이 안풀려서 넋두리처럼 해봤습니다. 이해도 되질않고..모든 입력을 yacc&lex를 사용하는거 같네요...
Forums:
그냥 입력은 전역
그냥 입력은 전역 변수에 있고 그걸 해석하기만 하는 역할을 하는 함수라고 생각하시면 편할 것 같습니다.
한말글 프로그래밍 언어 "열정" http://me-lang.wo.tc
Real programmers /* don't */ comment their code.
If it was hard to write, it should be /* hard to */ read.
조금 이해가 안되는데
입력은 전역변수에 있다 그건 main문안에 변수에 입력 된걸 yacc가 해석한다...
yacc가 전역변수라고 생각하고 lex가 그걸 해석한다 라고 생각하면 될까요?
댓글 달기