{"action":"closed","issue":{"url":"https://api.github.com/repos/Metaswitch/cpp-common/issues/304","labels_url":"https://api.github.com/repos/Metaswitch/cpp-common/issues/304/labels{/name}","comments_url":"https://api.github.com/repos/Metaswitch/cpp-common/issues/304/comments","events_url":"https://api.github.com/repos/Metaswitch/cpp-common/issues/304/events","html_url":"https://github.com/Metaswitch/cpp-common/issues/304","id":86928198,"number":304,"title":"100 Continue messages from HTTP stack confuse SAS","user":{"login":"AlexHockey","id":4903205,"avatar_url":"https://avatars.githubusercontent.com/u/4903205?v=3","gravatar_id":"","url":"https://api.github.com/users/AlexHockey","html_url":"https://github.com/AlexHockey","followers_url":"https://api.github.com/users/AlexHockey/followers","following_url":"https://api.github.com/users/AlexHockey/following{/other_user}","gists_url":"https://api.github.com/users/AlexHockey/gists{/gist_id}","starred_url":"https://api.github.com/users/AlexHockey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AlexHockey/subscriptions","organizations_url":"https://api.github.com/users/AlexHockey/orgs","repos_url":"https://api.github.com/users/AlexHockey/repos","events_url":"https://api.github.com/users/AlexHockey/events{/privacy}","received_events_url":"https://api.github.com/users/AlexHockey/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/Metaswitch/cpp-common/labels/bug","name":"bug","color":"fc2929"},{"url":"https://api.github.com/repos/Metaswitch/cpp-common/labels/medium-priority","name":"medium-priority","color":"eb6420"}],"state":"closed","locked":false,"assignee":{"login":"AlexHockey","id":4903205,"avatar_url":"https://avatars.githubusercontent.com/u/4903205?v=3","gravatar_id":"","url":"https://api.github.com/users/AlexHockey","html_url":"https://github.com/AlexHockey","followers_url":"https://api.github.com/users/AlexHockey/followers","following_url":"https://api.github.com/users/AlexHockey/following{/other_user}","gists_url":"https://api.github.com/users/AlexHockey/gists{/gist_id}","starred_url":"https://api.github.com/users/AlexHockey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AlexHockey/subscriptions","organizations_url":"https://api.github.com/users/AlexHockey/orgs","repos_url":"https://api.github.com/users/AlexHockey/repos","events_url":"https://api.github.com/users/AlexHockey/events{/privacy}","received_events_url":"https://api.github.com/users/AlexHockey/received_events","type":"User","site_admin":false},"milestone":null,"comments":1,"created_at":"2015-06-10T11:00:33Z","updated_at":"2015-06-10T17:48:01Z","closed_at":"2015-06-10T17:48:01Z","body":"Our HTTP stack (based on libevhtp) supports sending 100 Continue messages. Curl always adds a `Expect: 100-continue` header`, which means that (for example) if Sprout contacts Homestead the flow is: \r\n\r\n* Request (sprout -> homestead)\r\n* 100 Continue (homestead -> sprout)\r\n* Final response (homestead -> sprout)\r\n\r\nOur SAS logging on the client (sprout) sees the 100 Continue but the logging on the server does not. This means the response flows looks different on the two ends, which throws SAS message matching for a loop. \r\n"}}