diff --git a/main.go b/main.go index 252c2d759fdb9951b16550703d24005e0d00579f..382cbb6d864bc52927d95ba862181a6dc473fb89 100644 --- a/main.go +++ b/main.go @@ -104,15 +104,31 @@ func main() { // loadLocation loads a timezone location string, returning a *time.Location or error func loadLocation(timezone string) (*time.Location, error) { if timezone == "" { - return nil, fmt.Errorf("Timezone is not configured; please set the 'timezone' value in your config file (e.g. 'UTC' or 'America/New_York')") + return nil, fmt.Errorf("timezone is not configured; please set the 'timezone' value in your config file (e.g. 'UTC' or 'America/New_York')") } loc, err := time.LoadLocation(timezone) if err != nil { - return nil, fmt.Errorf("Could not load timezone '%s': %v", timezone, err) + return nil, fmt.Errorf("could not load timezone '%s': %v", timezone, err) } return loc, nil } +// closeResponseBody properly closes an HTTP response body, handling any errors +func closeResponseBody(resp *http.Response) { + err := resp.Body.Close() + if err != nil { + log.Printf("Error closing response body: %v", err) + } +} + +// closeFile properly closes a file, handling any errors +func closeFile(f *os.File) { + err := f.Close() + if err != nil { + log.Printf("Error closing file: %v", err) + } +} + func NewMCPServer(config *Config) *server.MCPServer { hooks := &server.Hooks{} @@ -360,7 +376,7 @@ func handleCreateTask( if err != nil { return reportMCPError(fmt.Sprintf("Failed to send HTTP request: %v", err)) } - defer resp.Body.Close() + defer closeResponseBody(resp) if resp.StatusCode == http.StatusNoContent { return &mcp.CallToolResult{ @@ -425,7 +441,7 @@ func createDefaultConfigFile(configPath string) { if err != nil { log.Fatalf("Failed to create default config at %s: %v", configPath, err) } - defer file.Close() + defer closeFile(file) if err := toml.NewEncoder(file).Encode(defaultConfig); err != nil { log.Fatalf("Failed to encode default config to %s: %v", configPath, err) }