완료

nekoko의 이미지

야후 smtp 서버때문에 오후부터 지금까지 삽질을 하고 있네요..
이메일 클라이언트에 SSL/TLS 기능을 추가하고 있는데
다 완성된 줄 알고 여기저기 서버를 바꿔가며 테스트를 했더니
야후 smtp 서버에서만 첨부파일과 함께 보낼 때 프로그램이 아예
죽어버리네요..
openssl을 사용했는데
헤더까지 잘 write를 하다가
첨부파일 전송 부분에서, 마지막 부분을 전송할 때
SSL_write()에서 그냥 죽어버립니다.
죽는 부분이 항상 일정한 것 같은데 원인을 못 찾겠습니다.
소켓에 쓰는 부분(SSL_write())만 막아봤는데 안 죽는 걸로 봐서
보낼 때 메모리 쪽엔 문제가 없는 것 같습니다..(또 다른 서버들은 잘 되니까)
왜 첨부파일 뒷부분에서 유독 야후 smtp 서버에서만 죽는 것일까요?
그리고 소켓에 write할 때 에러 메세지 뱉지 않고 그냥 프로그램이 죽는 경우도
있을 수 있나요..? 서버가 종료됐다던지 하면..?

혹시 네트워크 플밍의 고수님들 의심가는 부분이 있다면 도움을 주세요.

익명 사용자의 이미지

디버깅을 하셔야할듯??
"그 부분을 막았더니 프로그램이 안 죽더라. 그러니까, 그 부분에 문제가 있는 것 같다"라고 생각하실 게 아니라,
그 이전에 문제가 있었는데 나타나지 않다가, 그 부분에서 문제가 생기더라 라고 생각을 하셔야지요.
프로그램이 어디선가 크래쉬가 되면 크래쉬를 일으킨 위치가 있을 것이고,
어디선가 무한 루프를 돌고 있어도 그 위치가 있을 터인데,
디버거를 붙여서 디버깅을 해봐야지요? 그리구나서 뭔가 정리된 걸 올려야,,, 누군가가 답변을 해주지 않을지?

nekoko의 이미지

오늘도 하루종일 매달렸지만 큰 성과는 없었네요.
프로그램이 죽을 때 "broken pipe" 에러가 나오는 것을 확인하고
찾아본 끝에
signal(SIGPIPE, SIG_IGN);
을 프로그램 첫부분에 넣어줬더니,
write()에서 프로그램이 다운되지 않고 에러를 뱉어냅니다.
어제까진 에러 처리조차 못하고 있었지만 어쨌든 이제 걸러낼 수는
있게 되었습니다.
하지만 어째서 야후 서버에서만 저렇게 되는지 모르겠습니다.
write할 때 서버가 연결을 끊는 것 같이 보이는데요.
그 이유가 뭘까요..?

"I'm convinced that the only thing that kept me going was that I loved what I did." - Steve Jobs 1955-2011

snowall의 이미지

야후 개발팀에 문의하시는건 어떨까요? 어쩌면 야후 서버의 문제일수도 있으니까요

피할 수 있을때 즐겨라! http://melotopia.net/b

nekoko의 이미지

엊저녁에 문의메일을 보내놓긴 했는데요
아웃룩에서 똑같이 세팅하고 첨부파일을 보내보면
잘 가는 걸로 봐서 야후쪽 문제는 아닌 것 같습니다..
그렇다면 제 메일 클라이언트에서 뭔가 빠진 것이
있다는 얘기같은데..
암튼 계속 보고 있습니다. 다음주까진 해결이 되야할텐데 말이죠 :(

"I'm convinced that the only thing that kept me going was that I loved what I did." - Steve Jobs 1955-2011

nekoko의 이미지

제가 참고한 소스를 컴파일해서 해보니
잘 보내지네요 ㅋ.....-ㅅ-;
뭐가 다른지 한번 비교해봐야겠네요..

"I'm convinced that the only thing that kept me going was that I loved what I did." - Steve Jobs 1955-2011

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.