본문 바로가기

개발 및 운영117

프록시 환경 libwebsockets 에서 실제 클라이언트 IP 헤더 패치 2015.07.04. 01:48 클라이언트가 Proxy서버를 통해서 WebSocket서버로 접근을 해야 하는 상황(베스천 호스트)에서libwebsockets 라이브러리를 이용하면 실제 클라이언트의 IP을 받아오지 못하고 프록시 서버의 IP만 알 수 있습니다.( libwebsockets_get_peer_addresses 이용 )그래서... 방법이 없나... 하다가... 없더라 구요...ㅎ...왜 프록시 환경은 고려하지 않은건지...ㅠㅠlibwebsockets 에서 X-Forwarded-For 헤더를 읽어올 수 없었습니다.결국 소스를 수정하는 방법밖에 없어서 수정했습니다.다행이 lws_hdr_copy 관련된 부분을 쉽게 찾아 수정하기 많이 어렵진 않았습니다...뭐... 보시면 아시겠지만 lws_token_i.. 2015. 7. 31.
C로 DES 구현! 2015.06.19. 09:54 학교에서 정보보호 시간에 DES에 대해 배웠는데 한번 직접 짜 봤습니다.약 2시간 정도 걸렸네요~ 선생님이 만드신 PPT자료를 보고 만들었는데 자료에는 비트순서가 잘 나와있지 않아...실제 사용되는 DES알고리즘과는 차이가 있습니다.(2016-03-21 수정 - Standard에 맞게 수정함) 이건 그냥 DES알고리즘 자체만 구현한 것이니 그냥 참고용으로만 보세요~절대! 이 소스를 실제상황에서 사용하면 안됩니다!솔직히 효율성도 떨어지는 소스구요...ㅠ비트 순서 바꾸는 방법이 잘 생각이 안나 미리 지정된 테이블을 통해 막무가네로 바꿔버립니다.ㅎ #include #include #include unsigned char DES_IP_TABLE[64] = { 57,49,41,33.. 2015. 7. 31.
FreeType 라이브러리의 출력 문제..ㅠㅠ 2015.05.06. 21:47 Alpha형식의 도트형(?) 폰트 제작기를 만드는데... freetype라이브러리에 예상치 못한 문제들이 많네요...ㅠㅠ 우선... freetype예제 소스를 보면 y좌표를 이렇게 계산합니다.pen_y - face->glyph->bitmap_top + y이렇게 되면... pen_y 를 baseline으로 잡고 출력을 합니다. (그림출처 : http://cafe.naver.com/carroty/243850)저는 pen_y을 상단왼쪽으로 잡고 출력을 하고 싶어서... (그래야 폰트 생성기를 만들죠~)pen_y - face->glyph->bitmap_top + y + font_size 이렇게 바꾸었습니다.하.지.만.특정 글자들은 bitmap_top < char_height 인 .. 2015. 7. 31.
C소스 - 소수구하기 2015.03.18. 19:46 알고리즘 숙제라서 짜봤는데 필요하신분 사용하세요~'에라토스테네스의 체' 란 알고리즘을 이용했습니다.다른 소스들을 보면 그냥 최대 수만큼 배열을 잡는데...저는 수 하나를 1bit로 잡았습니다. 어짜피 소수냐 아니냐만 구별하면 되니까요.이렇게 하면 메모리 용량을 8배 적게 사용합니다.물론 bit을 계산하는 부분에서 약간의 오버헤드가 있긴 합니다...ㅎ그래도 1억 까지의 소스를 계산하는데 2.5초정도가 걸리고 약 12MB의 메모리를 차지합니다.뭐 이정도면 괜찮은 거죠~ㅋ그런데 1억까지의 소수를 출력하는데만 몇분은 걸릴거 같네요..ㅎ #include #include #include int mygetbit(unsigned char *pPrimeNumber, int index) {.. 2015. 7. 31.
AVR에서 I2C Detect 2015.02.01. 14:54 AVR에서 I2C Device 탐지하는 소스입니다. 제가 필요해서 짜봤는데 혹시 필요하신분 있을까 해서 올립니다~ 우선 Scanning 부분. printf("SCANNING...\r\n"); for(i=0;i 2015. 7. 31.
WELL512 랜덤 알고리즘의 랜덤성? 확인&비교 2014.12.21. 23:40 WELL512와 rand의 랜덤성을 해 보았습니다. 소스는 이렇습니다. #include #include #include uint32_t state[16]; uint32_t index = 0; #define TESTMAX 131072 uint32_t myrand() { uint32_t a, b, c, d; a = state[index]; c = state[(index+13)&15]; b = a^c^(a 2015. 7. 31.
반응형